信息安全中的加密技术的实现研究剖析.docx

您所在的位置:网站首页 cia 3元组 信息安全中的加密技术的实现研究剖析.docx

信息安全中的加密技术的实现研究剖析.docx

2023-03-29 05:35| 来源: 网络整理| 查看: 265

信息安全中的加密技术的实现研究剖析.docx

《信息安全中的加密技术的实现研究剖析.docx》由会员分享,可在线阅读,更多相关《信息安全中的加密技术的实现研究剖析.docx(24页珍藏版)》请在冰豆网上搜索。

信息安全中的加密技术的实现研究剖析.docx

信息安全中的加密技术的实现研究剖析

信息安全中的加密技术的实现研究

摘要:

随着网络的应用与发展,信息安全问题日益突出。

本文讨论的数据加密技术是实现计算机信息安全的重要手段之一,它是一种主动安全防御策略,为信息传输提供安全保护。

文章介绍了DES、RSA、MD5等数据加密技术以及链路加密和端对端加密两种网络数据加密方式。

数据库加密是信息安全的核心问题,文章介绍了库内加密、库外加密、硬件加密三种数据库加密方式。

最后文章介绍了几种流行的软件加密技术。

关键词:

信息安全;数据加密;对称式密钥加密技术DES;公开密钥加密技术RSA;单项散列算法MD5

ResearchofEncryptionIntheInformationSecurity

 

Abstract:

Alongwiththenetworkdevelopment,theinformationsecurityisdaybydayprominent.Thedataencryptionisoneoftheimportantmethodstorealizeinformationsecurity,whichisdefendingstrategythathasinitiativeandsecurityandprovidestheprotectionfortheinformationtransmission.Thispaperintroducesdataencryption:

DES,RSA,MD5andsoonaswellasthelinkencryptionandtheend-to-endencryptiononnetwork.Thedatabaseencryptionisthecoreofinformationsecurity.Thearticlediscussesthreedatabaseencryption:

theinsidestorehouseencryption,theoutsidestorehouseencryptionandthehardwareencryption.Finallyitanalyzesseveralkindsofpopularsoftwareencryptions.

Keywords:

informationsecurity;dataencryption;DES;RSA;MD5

 

1信息安全概述

1.1信息

信息是通过在数据上施加某些约定而赋予这些数据的特殊含义。

一般意义上,信息是指事物运动的状态和方式,是事物的一种属性,在引入必要的约束条件后可以形成特定的概念体系。

对现代企业来说,信息也是一种资产,包括计算机和网络中的数据,还包括专利、标准、商业机密、文件、图纸、管理规章、关键人员等,就象其它重要的商业资产那样,信息资产具有重要的价值,因而需要进行妥善保护。

1.2信息安全

信息安全(InformationSecurity,InfoSec)的任务,就是要采取措施(技术手段及有效管理)让这些信息资产免遭威胁,或者将威胁带来的后果降到最低程度,以此维护组织的正常运作。

凡是涉及到保密性、完整性、可用性、可追溯性、真实性和可靠性保护等方面的技术和理论,都是信息安全所要研究的范畴,也是信息安全所要实现的目标。

信息安全通常强调所谓CIA三元组的目标,即保密性、完整性和可用性。

保密性(Confidentiality)——确保信息在存储、使用、传输过程中不会泄漏给非授权用户或实体。

完整性(Integrity)——确保信息在存储、使用、传输过程中不会被非授权用户篡改,同时还要防止授权用户对系统及信息进行不恰当的篡改,保持信息内、外部表示的一致性。

可用性(Availability)——确保授权用户或实体对信息及资源的正常使用不会被异常拒绝,允许其可靠而及时地访问信息及资源。

除了CIA,信息安全的其它标准还有一些其他原则,包括可追溯性(Accountability)

不可抵赖性(Non-repudiation)、真实性(authenticity)等,这些都是对CIA原则的细化、补充或加强。

2数据加密技术

2.1密码学简介

数据加密技术是对信息进行重新编码,从而达到隐藏信息内容,使非法用户无法获得信息真实内容的一种技术手段。

网络中的数据加密则是通过对网络中传输的信息进行数据加密,满足网络安全中数据加密、数据完整性等要求,而基于数据加密技术的数字签名技术则可满足防低赖等安全要求。

可见,数据加密技术是实现信息安全的关键技术。

2.1.1数据加密、解密基本过程

通常情况下,人们将可懂的文本称为明文(plaintext);将明文变换成的不可懂的形式的文本称为密文(ciphertext);把明文变换成密文的过程叫加密(encipher);其逆过程,即把密文变换成明文的过程叫解密(decipher)。

密钥(keyword)是用于加解密的一些特殊信息,它是控制明文与密文之间变换的关键,它可以是数字、词汇或语句。

密钥分为加密密钥(EncryptionKey)和解密密钥(DecryptionKey)。

完成加密和解密的算法称为密码体制(CipherSystem)。

传统的密码体制所用的加密密钥和解密密钥相同,形成了对称式密钥加密技术;在一些新体制中,加密密钥和解密密钥不同,形成非对称式密码加密技术,即公开密钥加密技术。

数据加密或解密变换过程如图1所示。

图1 加密或解密变换

2.1.2加密和解密表示方法

明文用M(消息)或P(明文)表示,它可能是比特流(文本文件、位图、数字化的语音流或数字化的视频图像)。

至于涉及到计算机,P是简单的二进制数据。

明文可被传送或存储,无论在哪种情况,M指待加密的消息。

密文用C表示,它也是二进制数据,有时和M一样大,有时稍大(通过压缩和加密的结合,C有可能比P小些。

然而,单单加密通常达不到这一点)。

加密函数E作用于M得到密文C,用数学表示为:

E(M)=C.

相反地,解密函数D作用于C产生M

D(C)=M.

先加密后再解密消息,原始的明文将恢复出来,下面的等式必须成立:

D(E(M))=M

2.1.3鉴别、完整性和抗抵赖

除了提供机密性外,密码学通常有其它的作用:

.

(a)鉴别

消息的接收者应该能够确认消息的来源;入侵者不可能伪装成他人。

(b)完整性检验

消息的接收者应该能够验证在传送过程中消息没有被修改;入侵者不可能用假消息代替合法消息。

(c)抗抵赖

发送者事后不可能虚假地否认他发送的消息。

2.1.4算法和密钥

密码算法也叫密码,是用于加密和解密的数学函数。

(通常情况下,有两个相关的函数:

一个用作加密,另一个用作解密)

如果算法的保密性是基于保持算法的秘密,这种算法称为受限制的算法。

受限制的算法具有历史意义,但按现在的标准,它们的保密性已远远不够。

大的或经常变换的用户组织不能使用它们,因为每有一个用户离开这个组织,其它的用户就必须改换另外不同的算法。

如果有人无意暴露了这个秘密,所有人都必须改变他们的算法。

更糟的是,受限制的密码算法不可能进行质量控制或标准化。

每个用户组织必须有他们自己的唯一算法。

这样的组织不可能采用流行的硬件或软件产品。

但窃听者却可以买到这些流行产品并学习算法,于是用户不得不自己编写算法并予以实现,如果这个组织中没有好的密码学家,那么他们就无法知道他们是否拥有安全的算法。

尽管有这些主要缺陷,受限制的算法对低密级的应用来说还是很流行的,用户或者没有认识到或者不在乎他们系统中内在的问题。

现代密码学用密钥解决了这个问题,密钥用K表示。

K可以是很多数值里的任意值。

密钥K的可能值的范围叫做密钥空间。

加密和解密运算都使用这个密钥(即运算都依赖于密钥,并用K作为下标表示),这样,加/解密函数现在变成:

EK(M)=C

DK(C)=M.

这些函数具有下面的特性:

DK(EK(M))=M.

有些算法使用不同的加密密钥和解密密钥,也就是说加密密钥K1与相应的解密密钥K2不同,在这种情况下:

EK1(M)=C

DK2(C)=M

DK2(EK1(M))=M

所有这些算法的安全性都基于密钥的安全性;而不是基于算法的细节的安全性。

这就意味着算法可以公开,也可以被分析,可以大量生产使用算法的产品,即使偷听者知道你的算法也没有关系;如果他不知道你使用的具体密钥,他就不可能阅读你的消息。

密码系统由算法、以及所有可能的明文、密文和密钥组成的。

2.2对称式密钥加密技术

对称式密钥加密技术是指加密和解密均采用同一把秘密钥匙,而且通信双方必须都要获得这把钥匙,并保持钥匙的秘密。

当给对方发信息时,用自己的加密密钥进行加密,而在接收方收到数据后,用对方所给的密钥进行解密。

故它也称为秘密钥匙加密法。

对称算法的加密和解密表示为:

EK(M)=C

DK(C)=M

实现对称式密钥加密技术的加密算法主要有两种:

DES算法、IDEA算法。

2.2.1DES(DataEncryptionStandard)算法

DES即数据加密标准,是1977年美国国家标准局宣布用于非国家保密机关的数据保护。

这种加密算法是由IBM研究提出来,它综合运用了置换、代替、代数多种密码技术,把信息分成64位大小的块,使用56位密钥,迭代轮数为16轮的加密算法。

DES是一个分组加密算法。

其中有极少量的数被认为是弱密匙,但是很容易避开他们。

所以保密性依赖于密钥。

算法功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每分各长32位,其置换规则见下表:

58,50,12,34,26,18,10,2,60,52,44,36,28,20,12,4,

62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8,

57,49,41,33,25,17,9,1,59,51,43,35,27,19,11,3,

61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7,

 即将输入的第58位换到第一位,第50位换到第2位,...,依此类推,最后一位是原来的第7位。

L0、R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位,例:

设置换前的输入值为D1D2D3......D64,则经过初始置换后的结果为:

L0=D58D50...D8;R0=D57D49...D7。

  经过16次迭代运算后。

得到L16、R16,将此作为输入,进行逆置换,即得到密文输出。

逆置换正好是初始置的逆运算,例如,第1位经过初始置换后,处于第40位,而通过逆置换,又将第40位换回到第1位,其逆置换规则如下表所示:

  40,8,48,16,56,24,64,32,39,7,47,15,55,23,63,31,

  38,6,46,14,54,22,62,30,37,5,45,13,53,21,61,29,

  36,4,44,12,52,20,60,28,35,3,43,11,51,19,59,27,

  34,2,42,10,50,18,5826,33,1,41,9,49,17,57,25,

放大换位表

  32,1,2,3,4,5,4,5,6,7,8,9,8,9,10,11,

  12,13,12,13,14,15,16,17,16,17,18,19,20,21,20,21,

  22,23,24,25,24,25,26,27,28,29,28,29,30,31,32,1,

单纯换位表

  16,7,20,21,29,12,28,17,1,15,23,26,5,18,31,10,

  2,8,24,14,32,27,3,9,19,13,30,6,22,11,4,25,

  在f(Ri,Ki)算法描述图中,S1,S2...S8为选择函数,其功能是把6bit数据变为4bit数据。

下面给出选择函数Si(i=1,2......8)的功能表:

选择函数Si

S1:

  14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7,

  0,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8,

  4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,0,

  15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13,

S2:

  15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10,

  3,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5,

  0,14,7,11,10,4,13,1,5,8,12,6,9,3,2,15,

  13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9,

S3:

  10,0,9,14,6,3,15,5,1,13,12,7,11,4,2,8,

  13,7,0,9,3,4,6,10,2,8,5,14,12,11,15,1,

  13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7,

  1,10,13,0,6,9,8,7,4,15,14,3,11,5,2,12,

S4:

  7,13,14,3,0,6,9,10,1,2,8,5,11,12,4,15,

  13,8,11,5,6,15,0,3,4,7,2,12,1,10,14,9,

  10,6,9,0,12,11,7,13,15,1,3,14,5,2,8,4,

  3,15,0,6,10,1,13,8,9,4,5,11,12,7,2,14,

S5:

  2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9,

  14,11,2,12,4,7,13,1,5,0,15,10,3,9,8,6,

  4,2,1,11,10,13,7,8,15,9,12,5,6,3,0,14,

  11,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3,

S6:

  12,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11,

  10,15,4,2,7,12,9,5,6,1,13,14,0,11,3,8,

  9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6,

  4,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13,

S7:

  4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1,

  13,0,11,7,4,9,1,10,14,3,5,12,2,15,8,6,

  1,4,11,13,12,3,7,14,10,15,6,8,0,5,9,2,

  6,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12,

S8:

  13,2,8,4,6,15,11,1,10,9,3,14,5,0,12,7,

  1,15,13,8,10,3,7,4,12,5,6,11,0,14,9,2,

  7,11,4,1,9,12,14,2,0,6,10,13,15,3,5,8,

  2,1,14,7,4,10,8,13,15,12,9,0,3,5,6,11,

在此以S1为例说明其功能,我们可以看到:

在S1中,共有4行数据,命名为0,1、2、3行;每行有16列,命名为0、1、2、3,......,14、15列。

  现设输入为:

D=D1D2D3D4D5D6

令:

列=D2D3D4D5行=D1D6

  然后在S1表中查得对应的数,以4位二进制表示,此即为选择函数S1的输出。

下面给出子密钥Ki(48bit)的生成算法:

  从子密钥Ki的生成算法描述图中我们可以看到:

初始Key值为64位,但DES算法规定,其中第8、16、......64位是奇偶校验位,不参与DES运算。

故Key实际可用位数便只有56位。

即:

经过缩小选择换位表1的变换后,Key的位数由64位变成了56位,此56位分为C0、D0两部分,各28位,然后分别进行第1次循环左移,得到C1、D1,将C1(28位)、D1(28位)合并得到56位,再经过缩小选择换位2,从而便得到了密钥K0(48位)。

依此类推,便可得到K1、K2、......、K15,不过需要注意的是,16次循环左移对应的左移位数要依据下述规则进行:

循环左移位数

1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1

以上介绍了DES算法的加密过程。

DES算法的解密过程是一样的,区别仅仅在于第一次迭代时用子密钥K15,第二次K14、......,最后一次用K0,算法本身并没有任何变化。

2.2.2IDEA(InternationalDataEncryptionAlgorithm)算法

IDEA是一种国际信息加密算法。

它是1991年在瑞士ETHZurich由JamesMassey和XueiiaLai发明,于1992年正式公开,是一个分组大小为64位,密钥为128位,迭代轮数为八轮的迭代型密码体制。

此算法使用长达128位的密钥,在效地消除了任何试图穷尽搜索密钥的可能性。

这比DES提供了更多的安全性,但是在选择用于IDEA的密钥时,应该排除那些称为“弱密钥”的密钥。

DES只有四个弱密钥和12个次弱密钥,而IDEA中的弱密钥数相当可观,有2的51次方个。

但是,如果密钥的总数非常大,达到2的128次方个,那么仍有2的77次方个密钥可供选择。

IDEA被认为是极为安全的。

使用128位的密钥,蛮力攻击中需要进行的测试次数与DES相比会明显增大,甚至允许对弱密钥测试。

而且,它本身也显示了它尤其能抵抗专业形式的分析性攻击。

IDEA的软件实现速度与DES差不多。

但硬件实现速度要比DES快得多,快将近10倍。

设计者们声称由ETHZurich开发的一种芯片,采用IDEA算法的加密速率可达到177M比特/秒。

IDEA密码中使用了以下三种不同的运算:

(1)逐比特异或运算;

(2)模2加运算;

(3)模2+1乘运算,0与2对应。

IDEA算法是由8圈迭代和随后的一个输出变换组成。

它将64比特的数据分成4个子块,每个16比特,令这四个子块作为迭代第一轮的输出,全部共8圈迭代。

每圈迭代都是4个子块彼此间以及16比特的子密钥进行异或,MOD2加运算,MOD2+1乘运算。

任何一轮迭代第三和第四子块互换。

该算法所需要的"混淆"可通过连续使用三个"不相容"的群运算于两个16比特子块来获得,并且该算法所选择使用的MA-(乘加)结构可提供必要的"扩散"。

2.2.3对称式密钥加密技术的优缺点

对称式密钥加密技术具有加密速度快,保密度高等优点。

但也有其缺点:

  ①密钥是保密通信安全的关键,发信方必须安全、妥善地把钥匙护送到收信方,不能泄露其内容,如何才能把密钥安全地送到收信方,是对称密钥加密技术的突出问题,可见,此方法的密钥分发过程十分复杂,所花代价高。

  ②多人通信时密钥的组合的数量,会出现爆炸性的膨胀,使密钥分发更加复杂化,n个人进行两两通信,总需要的密钥数为n(n-1)/2。

  ③通信双方必须统一密钥,才能发送保密的信息。

如果发信者与收信人是素不相识的,这就无法向对方发送秘密信息了。

2.3公开密钥加密技术(RSA)

公开密钥加密技术要求密钥成对使用,即加密和解密分别由两个密钥来实现。

每个用户都有一对选定的密钥,一个可以公开,即公共密钥,用于加密;另一个由用户安全拥有,即秘密密钥,用于解密。

公共密钥和秘密密钥之间有密切的关系。

当给对方发信息时,用对方的公开密钥进行加密,而在接收方收到数据后,用自己的秘密密钥进行解密。

故此技术也称为非对称密码加密技术。

公开密钥加密算法主要是RSA加密算法。

此算法是美国MIT的Rivest、Shamir和Adleman于1978年提出的,它是第一个成熟的、迄今为止理论上最为成功的公开密钥密码体制,它的安全性基于数论中的Euler定理和计算复杂性理论中的下述论断:

求两个大素数的乘积是容易的,但要分解两个大素数的乘积,求出它们的素因子则是非常困难的,它属于NP--完全类。

2.3.1RSA实现过程

RSA加密、解密过程由密钥生成、加密过程和解密过程组成。

(1)密钥对的产生

选择两个大素数,p和q。

计算:

n=p*q

选择加密密钥e,要求e和(p-1)*(q-1)互质。

最后,利用Euclid算法计算解密密钥d,满足e*d=1(mod(p-1)*(q-1))

其中n和d也要互质。

数e和n是公钥,d是私钥。

两个素数p和q不再需要,应该丢弃,不要让任何人知道。

(2)加密过程

加密信息m(二进制表示)时,首先把m分成等长数据块m1,m2,...,mi,块长s,其中2^s

对应的密文是:

ci=mi^e(modn)(a)

(3)解密过程

解密时作如下计算:

mi=ci^d(modn)(b)

RSA可用于数字签名,方案是用(a)式签名,(b)式验证。

具体操作时考虑到安全性和m信息量较大等因素,一般是先作HASH运算。

2.3.2RSA的安全性

RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解RSA就一定需要作大数分解。

假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。

目前,RSA的一些变种算法已被证明等价于大数分解。

不管怎样,分解n是最显然的攻击方法。

现在,人们已能分解140多个十进制位的大素数。

因此,模数n必须选大一些,因具体适用情况而定。

2.3.3RSA的速度

由于进行的都是大数计算,使得RSA最快的情况也比DES慢上100倍,无论是软件还是硬件实现。

速度一直是RSA的缺陷。

一般来说只用于少量数据加密。

2.3.4RSA的选择密文攻击

RSA在选择密文攻击面前很脆弱。

一般攻击者是将某一信息作一下伪装(Blind),让拥有私钥的实体签署。

然后,经过计算就可得到它所想要的信息。

实际上,攻击利用的都是同一个弱点,即存在这样一个事实:

乘幂保留了输入的乘法结构:

(XM)^d=X^d*M^dmodn

前面已经提到,这个固有的问题来自于公钥密码系统的最有用的特征-每个人都能使用公钥。

但从算法上无法解决这一问题,主要措施有两条:

一条是采用好的公钥协议,保证工作过程中实体不对其他实体任意产生的信息解密,不对自己一无所知的信息签名;另一条是决不对陌生人送来的随机文档签名,签名时首先使用One-WayHashFunction对文档作HASH处理,或同时使用不同的签名算法。

下面介绍几种不同类型的攻击方法。

(1)RSA的公共模数攻击。

若系统中共有一个模数,只是不同的人拥有不同的e和d,系统将是危险的。

最普遍的情况是同一信息用不同的公钥加密,这些公钥共模而且互质,那末该信息无需私钥就可



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3